package models

import (
	"math/rand"
	"my-yipuku/db"
	"strconv"
	"time"
)

type CouponOrder struct {
	ID         string  `json:"id"`          // 主键ID
	OrderId    string  `json:"order_id"`    // 用户订单ID
	OutTradeno string  `json:"out_tradeno"` // 外部订单ID
	Count      int     `json:"count"`       // 优惠卷数量
	Price      float64 `json:"price"`       // 优惠卷价格
	PayAt      int     `json:"pay_at"`      // 支付时间
	PayStatus  int     `json:"pay_status"`  // 支付状态
	CreatedAt  int     `json:"created_at"`  // 创建时间
	UpdatedAt  int     `json:"updated_at"`  // 编辑时间
}

/*
 * 生成订单ID
 */
func (u CouponOrder) CreatedId() string {
	rand.Seed(time.Now().UnixNano())
	timeNum := time.Now().Format("20060102")
	randNum := rand.Intn(1000000)
	id := timeNum + strconv.Itoa(randNum)
	return id
}

/**
* 生成优惠卷订单
* @param $orderId 用户订单ID
* @param count 优惠卷数量
* @param price 优惠卷价格 页数
* @return id 优惠卷订单ID
 */
func (c CouponOrder) CreatedOrder(orderId string, count int, price float64) string {
	id := c.CreatedId()
	order := CouponOrder{
		ID:        id,
		OrderId:   orderId,
		Count:     count,
		Price:     price,
		PayStatus: 0,
	}
	db.Db.Create(&order)
	if db.Db.Error != nil {
		return ""
	}
	return id
}
